#ifndef QUEUE_H
#define QUEUE_H

#define QUEUE_SIZE 102400

typedef int queue_elem_t;

typedef struct queue {
	queue_elem_t *array;

	unsigned int alloced_size;
	unsigned int size;
} queue_t;

queue_t *QueueInit(const int max_size);
void QueueDestroy(queue_t *pqueue);
void QueuePush(queue_t *pqueue, queue_elem_t elem);
void PrintQueue(queue_t *pqueue);
queue_elem_t QueuePop(queue_t *pqueue);
queue_t *MakeSnapshot(queue_t *pqueue);

#endif // QUEUE_H
